package com.example.abilityslicenavigation.slice;

import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.Component;
import ohos.agp.components.ComponentContainer;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.utils.TextAlignment;

public class MainAbilitySlice extends AbilitySlice {
    // 文本组件
    private Text text;
    // 计数变量
    private int count = 1;


    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // super.setUIContent(ResourceTable.Layout_ability_main);
        // 创建布局配置对象
        ComponentContainer.LayoutConfig config = new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT);
        // 创建定向布局对象，并传入布局配置
        DirectionalLayout layout = new DirectionalLayout(this);
        // 设置定向布局的背景颜色为白色
        ShapeElement element = new ShapeElement(); // 创建形状元素element对象
        element.setRgbColor(new RgbColor(255, 255, 255)); // 设置element颜色为白色
        layout.setBackground(element);  // 设置背景为element
        layout.setLayoutConfig(config); // 设置定向布局的布局配置选项
        // 创建文本组件对象，并传入布局配置，设置文本内容
        // Text text = new Text(this); // 创建文本组件
        text = new Text(this); // 初始化文本对象text
        text.setLayoutConfig(config); // 设置文本组件的布局配置选项
        text.setTextAlignment(TextAlignment.CENTER); // 设置文本居中方式为居中
        // text.setText("MainAbilitySlice"); // 设置文本内容为"MainAbilitySlice"
        text.setText("" + count); // 设置内容字符串为计数
        text.setTextSize(50); // 设置文本大小为50
        // 将文本组件加入到定向布局中
        layout.addComponent(text);
        // 将UI内容设置为定向布局
        super.setUIContent(layout);

        // 处理文本组件text的单击事件
        text.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                // 跳转到SecondAbilitySlice
                // present(new SecondAbilitySlice(), new Intent());

                // 创建Intent对象
                Intent _intent = new Intent();
                // 设置intent对象的计数参数
                _intent.setParam("count", count);
                // 启动SecondAbilitySlice
                presentForResult(new SecondAbilitySlice(), _intent, 0x00101);

            }
        });

    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    protected void onResult(int requestCode, Intent resultIntent) {
        if (requestCode == 0x00101) {
            // 获取返回的计数值，其中第1个参数为键，第2个参数为默认值
            count = resultIntent.getIntParam("count", 1);
            // count自增1后显示在text文本组件上
            text.setText("" + ++count);
        }
    }

}
